/**
* @version 1.0
* @package FACTURAPYMES.
* @author Jorge Washington Mueses Cevallos.
* @copyright Copyright (C) 2010 por Jorge Mueses. Todos los derechos reservados.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL.
* FACTURAPYMES! es un software de libre distribución, que puede ser
* copiado y distribuido bajo los términos de la Licencia Pública
* General GNU, de acuerdo con la publicada por la Free Software
* Foundation, versión 2 de la licencia o cualquier versión posterior.
*/

package ec.com.yaku.seg.clases;
import ec.com.yaku.lib.BaseDatos;
import java.sql.ResultSet;

public class Rol extends BaseDatos{
    public Rol(String m, int p, String db, String u, String c){
        super(m, p, db, u, c);
    }
    public ResultSet getRoles()
    {
        return this.consulta("SELECT * FROM vta_rol;");
    }
    public ResultSet getRol(String id)
    {
        return this.consulta("SELECT * FROM vta_rol where id_rol="+id+";");
    }
    public ResultSet getCargos()
    {
        return this.consulta("SELECT * FROM vta_rol where rol<>'administradores';");
    }
    public boolean estaDuplicado(String id, String r)
    {
        ResultSet res = this.consulta("SELECT * FROM tbl_rol where lower(rol)='"+r.toLowerCase()+"' and id_rol<>"+id+";");
        if(this.getFilas(res)>0){
            return true;
        }
        try{
            res.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return false;
    }
    public boolean insertar(String r)
    {
        return this.ejecutar("INSERT INTO tbl_rol(rol) VALUES('"+r+"');");        
    }
    public boolean actualizar(String id, String r)
    {
        if(r.compareTo("administradores")!=0){
            return this.ejecutar("UPDATE tbl_rol SET rol='"+r+"' WHERE id_rol="+id+";"); 
        }
        return true;
    }
    public ResultSet getMenus(String id)
    {
        return this.consulta("select id_pagina,txt_modulo,descripcion from vta_pagina where id_pagina not in(select id_pagina from vta_rol_priv_pagina WHERE id_rol=" + id + ") order by modulo,id_pagina;");
    }
    public ResultSet getPrivilegios(String id)
    {
        return this.consulta("select id_pagina,txt_modulo,descripcion from vta_rol_priv_pagina where id_rol=" + id + " order by modulo,id_pagina;");
    }    
    public ResultSet concederPriv(String id_rol, String id_pa)
    {
        return this.consulta("INSERT INTO tbl_privilegio VALUES(" + id_rol + ", "  + id_pa + ");");
    }
    public ResultSet revocarPriv(String id_rol, String id_pa)
    {
        return this.consulta("DELETE FROM tbl_privilegio WHERE id_rol=" + id_rol + " and id_pagina="  + id_pa + ";");
    }
    public ResultSet getAccesos(String id)
    {
        return this.consulta("select P.pagina from tbl_pagina as P inner join tbl_privilegio as PR on P.id_pagina=PR.id_pagina WHERE PR.id_rol=" + id + " order by pagina;");
    }
    public boolean getAcceso(String id, String pag)
    {
        try{
            ResultSet res = this.consulta("select P.pagina from tbl_pagina as P inner join tbl_privilegio as PR on P.id_pagina=PR.id_pagina WHERE PR.id_rol=" + id + " and pagina='"+pag+"';");
            if(this.getFilas(res)>0){
                return true;
            }
            res.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return false;
    }
}
